The approaches described in this section could be pursued, but are not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section. Similarly, the problems with the various approaches are not necessarily recognized in the prior art.
A Globally Unique Identifier (GUID) refers to a unique number that is produced by the operating system (e.g., Microsoft Windows®) or by any other utility to identify a particular component, application, file, database entry, and/or user. For instance, a Website may generate a GUID and assign it to a user's browser to record and track the session. A GUID is also used in a Windows registry to identify Communication Dynamic Link Libraries (COMM DLLs). Knowing where to look in the registry and having the correct GUID yields information about a COM object (i.e., information in the type library, its physical location, etc.). Windows also identifies user accounts by a username (computer/domain and username) and assigns it a GUID. Some database administrators use GUIDs as primary key values in databases. In this specification, a GUID is a unique identifier for an object, such as a user object. A GUID is collision free, meaning that the same GUID is never assigned to two different users.
GUIDs can be created in a number of ways, but usually they are a combination of one or more unique values based on a specific point in time (e.g., an Internet Protocol (IP) address, network Media Access Control (MAC) address, clock date/time, etc.) (Webopedia.com). In a network, GUIDs may be used at the business layer for keeping track of billing information, for example, and associating the billing information with a user.
Dynamic Host Configuration Protocol (DHCP) refers to a protocol for assigning dynamic IP addresses to devices on a network. With dynamic addressing, a device can have a different IP address every time it connects to the network. In some systems, the device's IP address can even change while it is still connected. DHCP also supports a mixture of static and dynamic IP addresses. Dynamic addressing simplifies network administration because the software keeps track of IP addresses rather than requiring an administrator to manage the task. Using DHCP and dynamic addressing, a new computer can be added to a network without manually assigning it a unique IP address. Many Internet Service Providers (ISPs) use dynamic IP addressing for users, such as dial-up, DSL, cable, Ethernet, and enterprise users.
A DHCP server may be an active service agent, and may lease an IP address for a fixed amount of time. Before the time of the lease expires, if an end station device associated with a user anticipates that the connection to the network will still be needed, the end station applies to renew the lease on behalf of the user. In response, the DHCP renews the IP lease or issues the user a new lease for a new IP address.
In certain jurisdictions, laws or administrative regulations require any network operator to be capable of determining which user had a specific IP address assigned to him or her during a specified period of time. These requirements exist, for example, to enable law enforcement agencies to locate particular users or associate particular users with unlawful activity.
However, in networks that use dynamic network addressing, associating an IP lease with a particular user at a particular time can be a very complex process. Any software that performs this association needs to gather information from multiple sources and application systems and perform a correlation. Current systems or network operators, for instance, perform the following steps when associating a specific IP address to a user during a given a time period.
In a first step, a Dynamic Host Control Protocol (DHCP) server, such as Cisco Network Registrar (CNR), is queried to determine the MAC address or switch port, associated with the IP address in question, from which the user accessed the network.
In a second step, if the Operational Support Systems and/or Business Support Systems (OSS/BSS) do not track the active and historical MAC addresses or the switch ports for each user, then an inventory system is used to assemble the active and historical MAC addresses or switch ports used by the users of interest. Specifically, the inventory is used to determine MAC addresses or switch ports associated with the locations where the network was accessed, or otherwise retrieve an identifier for the user. The inventory system determines the location where the network was accessed by looking up the MAC Address and/or switch port values in the inventory system and retrieving a corresponding user record or other user identification, such as a postal address. Using the inventory to determine the location where the user accessed the network may be skipped if the OSS/BSS track the MAC address or switch port for both active and historical users.
However, a difficulty with the above two steps is that the MAC address is associated with a device, and if a different person uses the same device the MAC address will not change, and there may be no indication that the user has changed. Similarly, although the switch port is associated with a location, the person using the switch port may change. For example, a person may move to another apartment, and there may be no indication that the former user of the switch port associated with the apartment is no longer present. If the user uses a mobile device to access a network, the switch port changes relatively frequently, thereby complicating correlating the user to a given switch port at any given time.
In a third step, using the active and/or historical data gathered from the inventory in the second step or tracked by the OSS/BSS, the active and/or historical user data is queried to correlate the MAC address or switch port to a user for a given time period. The association of MAC address and/or switch port with a user is not invariant. This association may change over time. Specifically, over a sufficient amount of time the same MAC address and/or switch port may be used by many different users to access the network. Therefore, one cannot rely on a static switch port to user mapping that an inventory system may maintain for establishing an association between an IP lease and a user. The changing nature of the association negatively impacts the likelihood of performing an accurate and successful correlation between a user and a historical IP address.
As an example of the above method, assume that the OSS/BSS do not track the switch port for both active and historical users, and therefore the second step may not be skipped. Then, in one manner of correlating a user with an IP address, an inventory system is used to determine the postal address of the user's location. Subsequent to determining the postal address, an active or historical user database determines the specific user that registered from that postal address. In other words, first the IP lease information is queried for the MAC address and/or the switch port. Then an OSS/BSS system is queried to determine which user is associated with that MAC address or switch port.
Additionally, associating a user with an IP address using the above approach requires searching information about the usage of the IP address. Based on the usage of the IP address it may be necessary to infer which users used which addresses, which may fail. Specifically, the information may be insufficient to conclusively determine which user used an IP address at a particular time. For example, although when leasing an IP address the time of the lease of the IP address may be recorded, there may be subsequent periods of time before the expiration of the lease when the IP address is in use by another user that is not recorded. Consequently, if a search of active data does not provide a enough information to determine which user used a particular IP address at a given time, then archived data must be searched as well, which may still be insufficient to conclusively determine the user of the IP address at a particular time. Further, multiple information sources must be consulted, which increases complexity and the time required to resolve an association.
The above approach is further complicated, because the details of the network and network layer may be different for different networks. Additionally, in the above approach, the business layer and/or service layer is required to account for the details of the network and the network layer. Thus, it can be cumbersome to write business layer and/or service layer software that will accommodate the specific details of any given network and network layer, and it may be necessary to customize the business layer and/or the service layer for certain networks.
As an example of one of the sources of complexities in correlating IP lease information to user information, DHCP provides a framework for passing configuration information to hosts on a TCP/IP network, in a request/response transaction. Configuration parameters and other control information are carried in tagged data items of the DHCP message, called options. A DHCP relay agent may operate in an access switch (a switch for accessing the network). The DHCP Relay Agent Information Option (option 82), allows a DHCP relay agent to add information known by that agent to the host's requests for examination by the DHCP server. An access switch supporting option 82 typically adds port-identifying information to the request. The DHCP server or associated software can record option 82 information, and return the option 82 information when lease information is queried. In the Cisco Subscriber Management Center (SMC) Ethernet To The Home (ETTH) environment, lease query and association steps are significantly different if a user terminates usage at a switch that supports option 82 versus another user that terminates usage at a switch that does not support option 82. The applications keep track of such network differences and the semantic differences in IP lease query processing.
The above approach for associating a user with an IP lease gets even more complex for mobile users, because mobile users may use different switch ports to access the network. In addition, the burden is placed on the OSS/BSS and inventory systems to track information for each user for the express purpose of performing an IP lease query. This process of correlating users with IP addresses is not only error prone, but also inefficient.
Authentication of a user does not necessarily solve the problem of associating a user with an IP lease, because the user may change locations after authenticating, thereby changing switch ports. Consequently, identifying a user by associating the user with the switch port at which the user authenticated will indicate the user that authenticated, who may no longer be using that switch port.
Thus, there is a need for a simplified method of associating network address leases with users.